/*
 * @Author: dgflash
 * @Date: 2021-07-03 16:13:17
 * @LastEditors: dgflash
 * @LastEditTime: 2023-08-28 10:02:57
 */
import { Component, Game, JsonAsset, Node, _decorator, director, game, screen, sys } from "cc";
// import { LanguageManager } from "../libs/gui/language/Language";
// import { BuildTimeConstants } from "../module/config/BuildTimeConstants";
// import { GameConfig } from "../module/config/GameConfig";
// import { GameQueryConfig } from "../module/config/GameQueryConfig";
import { oops, version } from "./Oops";
import {UIConfig, UIID} from "db://assets/script/config/UIConfig";
// import { AudioManager } from "./common/audio/AudioManager";
// import { EventMessage } from "./common/event/EventMessage";
// import { TimerManager } from "./common/timer/TimerManager";
// import { GameManager } from "./game/GameManager";


const { ccclass, property } = _decorator;

var isInited = false;

/** 框架显示层根节点 */
@ccclass
export class Root extends Component {
    /** 游戏层节点 */
    @property({
        type: Node,
        tooltip: "游戏层"
    })
    game: Node = null!;

    /** 界面层节点 */
    @property({
        type: Node,
        tooltip: "界面层"
    })
    gui: Node = null!;

    /** 持久根节点 */
    persistRootNode: Node = null!

    onLoad() {
        this.init();
        oops.uiMgr.initUIConf(UIConfig);
        oops.uiMgr.open(UIID.UIMain);
        // this.init();
    }

    update(dt: number) {

    }

    /** 初始化游戏界面 */
    protected initGui() {

    }

    /** 初始化游戏业务模块 */
    protected initEcsSystem() {

    }

    /** 加载完引擎配置文件后执行 */
    protected run() {

    }

    protected init() {
        // 创建持久根节点
        this.persistRootNode = new Node("PersistRootNode");
        director.addPersistRootNode(this.persistRootNode);

        this.initGui();

        // this.initEcsSystem();
        // oops.ecs.init();
        //
        // // 游戏显示事件
        // game.on(Game.EVENT_SHOW, () => {
        //     oops.log.logView("【系统】游戏前台显示");
        //     oops.timer.load();     // 平台不需要在退出时精准计算时间，直接暂时游戏时间
        //     oops.audio.resumeAll();
        //     director.resume();
        //     game.resume();
        //     oops.message.dispatchEvent(EventMessage.GAME_ENTER);
        // });
        //
        // // 游戏隐藏事件
        // game.on(Game.EVENT_HIDE, () => {
        //     oops.log.logView("【系统】游戏切到后台");
        //     oops.timer.save();     // 平台不需要在退出时精准计算时间，直接暂时游戏时间
        //     oops.audio.pauseAll();
        //     director.pause();
        //     game.pause();
        //     oops.message.dispatchEvent(EventMessage.GAME_EXIT);
        // });

        // 游戏尺寸修改事件
        // oops.gui = new LayerManager(this.gui);
        // oops.gui.init(UIConfigData);
        // var c_gui = this.gui.addComponent(GUI)!;
        // oops.gui.open(UIID.MainUI,null,null);
        console.log("dodododo")
        // if (sys.isMobile == false) {
        //     screen.on("window-resize", () => {
        //         oops.log.logView("【系统】游戏画布尺寸变化");
        //         c_gui.resize();
        //         oops.message.dispatchEvent(EventMessage.GAME_RESIZE);
        //     }, this);
        //
        //     screen.on("fullscreen-change", () => {
        //         oops.log.logView("【系统】游戏全屏显示");
        //     }, this);
        // }
        //
        // screen.on("orientation-change", () => {
        //     oops.log.logView("【系统】游戏旋转屏幕");
        // }, this);
    }
}
